CREATE TABLE Student (
	stuId VARCHAR2(6),
	lastName VARCHAR2(20) NOT NULL,
	firstName VARCHAR2(20) NOT NULL,
	major VARCHAR2(10),
	credits NUMBER(3) DEFAULT 0,
	CONSTRAINT Student_stuId_pk PRIMARY KEY (stuId),
	CONSTRAINT Student_credits_cc CHECK ((credits>=0) AND (credits < 150)));

CREATE TABLE Faculty (
	facId VARCHAR2(6),
	name VARCHAR2(20) NOT NULL,
	department VARCHAR2(20),
	rank VARCHAR2(10),
	CONSTRAINT Faculty_facId_pk PRIMARY KEY (facId));

CREATE TABLE Class (
	classNumber VARCHAR2(8),
	facId VARCHAR2(6) NOT NULL,
	schedule VARCHAR2(8),
	room VARCHAR2(6),
	CONSTRAINT Class_classNumber_pk PRIMARY KEY (classNumber),
	CONSTRAINT Class_facId_fk FOREIGN KEY (facId) REFERENCES Faculty
		(facId) ON DELETE SET NULL,
	CONSTRAINT Class_schedule_room_uk UNIQUE (schedule, room));

CREATE TABLE Enroll (
	stuId VARCHAR2(6),
	classNumber VARCHAR2(8),
	grade VARCHAR2(2),
	CONSTRAINT Enroll_classNumber_stuId_pk PRIMARY KEY
		(classNumber, stuId),
	CONSTRAINT Enroll_classNumber_fk FOREIGN KEY (classNumber)
		REFERENCES Class (classNumber) ON DELETE CASCADE,
CONSTRAINT Enroll_stuId_fk FOREIGN KEY (stuId) REFERENCES Student
(stuId)ON DELETE CASCADE);